Better defaults for in-tree libc++ with cmake. This will detect if you are building libcxx in-tree and libcxxabi is available. If so, it will default to using the in-tree libcxxabi by setting LIBCXX_CXX_ABI to "libcxxabi", LIBCXX_LIBCXXABI_INCLUDE_PATHS to "${CMAKE_SOURCE_DIR}/projects/libcxxabi/include" and will add "cxxabi" as a proper dependency. Patch by Russell Harmon. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214037 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/CMakeLists.txt b/CMakeLists.txt index c20e5d1..1345eef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt 
@@ -46,7 +46,13 @@    set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)  if (NOT DEFINED LIBCXX_CXX_ABI) - set(LIBCXX_CXX_ABI "none") + if (NOT DEFINED LIBCXX_BUILT_STANDALONE AND IS_DIRECTORY "${CMAKE_SOURCE_DIR}/projects/libcxxabi") + set(LIBCXX_CXX_ABI "libcxxabi") + set(LIBCXX_LIBCXXABI_INCLUDE_PATHS "${CMAKE_SOURCE_DIR}/projects/libcxxabi/include") + set(LIBCXX_CXX_ABI_INTREE 1) + else () + set(LIBCXX_CXX_ABI "none") + endif ()  endif()  set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING  "Specify C++ ABI library to use." FORCE) @@ -149,6 +155,10 @@  setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""  "c++abi" "cxxabi.h" ""  ) + + if (LIBCXX_CXX_ABI_INTREE) + add_dependencies(LIBCXX_CXX_ABI_DEPS cxxabi) + endif ()  elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxrt")  setup_abi_lib("LIBCXX_LIBCXXRT_INCLUDE_PATHS" "-DLIBCXXRT"  "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""